import { createVNode, Fragment } from '../vnode'

/**
 * 渲染插槽节点，返回一个用 div 包裹的渲染对象
 * @param slots 传入的一个或多个插槽
 * @param key 传入的插槽名称
 * @param props 作用域插槽的 props 数据
 * @returns 一个用 div 包裹的渲染对象
 */
export const renderSlots = (slots, key: string = 'default', props) => {
    const slot = slots[key];

    if (slot) {
        if (typeof slot == "function") {
            // Fragment 将不会渲染多一层的外部容器，二十渲染所有的子元素
            return createVNode(Fragment, {}, slot(props));
        }
    }
}